const { sequelize, testConnection, syncDatabase } = require('../config/database');
const { Weather, WeatherForecast, Geocode, Poi, Route } = require('../models');

async function initDatabase() {
  console.log('🚀 开始初始化数据库...');
  
  try {
    // 测试数据库连接
    const isConnected = await testConnection();
    if (!isConnected) {
      console.error('❌ 数据库连接失败，请检查配置');
      process.exit(1);
    }
    
    // 同步数据库模型（强制重建表）
    console.log('📋 同步数据库模型...');
    const syncResult = await syncDatabase(true);
    if (!syncResult) {
      console.error('❌ 数据库同步失败');
      process.exit(1);
    }
    
    console.log('✅ 数据库初始化完成');
    console.log('📊 已创建以下表：');
    console.log('   - weather (天气信息表)');
    console.log('   - weather_forecast (天气预报表)');
    console.log('   - geocode (地理编码表)');
    console.log('   - poi (POI信息表)');
    console.log('   - route (路线规划表)');
    
  } catch (error) {
    console.error('❌ 数据库初始化失败:', error.message);
    process.exit(1);
  } finally {
    await sequelize.close();
  }
}

// 如果直接运行此脚本
if (require.main === module) {
  initDatabase();
}

module.exports = initDatabase; 